package com.lw.service.impl;

import com.lw.common.vo.UserVo;
import com.lw.entity.table.TbRoleTableDef;
import com.lw.entity.table.TbUserTableDef;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.lw.entity.TbUser;
import com.lw.mapper.TbUserMapper;
import com.lw.service.TbUserService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 服务层实现。
 *
 * @author lw
 * @since 2024年08月03日 10:20:00
 */
@Service
public class TbUserServiceImpl extends ServiceImpl<TbUserMapper, TbUser> implements TbUserService {

    /**
     * todo 经典案例
     * mybatis-flex 关联查询案例
     * @return 用户详情信息列表
     * by lw on 2024年8月3日 20:12:47
     */
    @Override
    public List<UserVo> getUserDetail() {
        return queryChain().select(TbUserTableDef.TB_USER.ALL_COLUMNS,
                        TbRoleTableDef.TB_ROLE.NAME.as("roleName"))
                .from(TbUserTableDef.TB_USER)
                .leftJoin(TbRoleTableDef.TB_ROLE)
                .on(TbUserTableDef.TB_USER.ROLE_ID.eq(TbRoleTableDef.TB_ROLE.ID)).listAs(UserVo.class);
    }
}
